home *** CD-ROM | disk | FTP | other *** search
/ Tech Arsenal 1 / Tech Arsenal (Arsenal Computer).ISO / tek-01 / mcomm551.zip / UPDATE.DOC < prev    next >
Text File  |  1991-11-28  |  10KB  |  208 lines

  1.  
  2.  
  3.  
  4.                              MCOMM 5.50 UPDATE NOTES
  5.  
  6.          Version 5.50 adds RTS flow control for the receive side.
  7.          Previous versions supported monitoring CTS to insure the device
  8.          being sent to was not overran but did not lower RTS if the PC
  9.          was being overran.  The function 'async_msrflow' has been
  10.          modified to support this option.  For more information, see the
  11.          updated documentation on 'async_msrflow' in ASYNC.DOC.  This
  12.          change also necessitated a change in the ASYNC structure making
  13.          it one byte longer.  BE SURE TO USE THE RIGHT HEADER FILE AND
  14.          RECOMPILE ANY CODE THAT USES COMM.H or COMM.HPP.
  15.  
  16.          Added a Zmodem demo program called TXZM.  The shell code and
  17.          linkable libraries are not part of the shareware version of
  18.          MCOMM.  Complete source comes with the registered version.
  19.          This is primarily a demo with limited documentation and limited
  20.          support.  It also happens to be very fast and contains a lot of
  21.          extras.  It MAY NOT be distributed except as stated in its
  22.          documentation.
  23.  
  24.  
  25.                              MCOMM 5.41 UPDATE NOTES
  26.  
  27.          Version 5.41 contains a few minor changes and bug fixes.  These
  28.          are:
  29.  
  30.          1) The 'volatile' keyword was added to ASYNC structure members
  31.             that are modified by the interrupt handler.  This corrects
  32.             problems with optimizing compilers (such as MSC 6.0) that
  33.             load variables into registers.  Many of the macro
  34.             implemented functions test variables that are modified by
  35.             the interrupt handler.  If the compiler, in optimizing a
  36.             loop, loads a variable into a register that is modified by
  37.             the interrupt handler, it will never see the variable
  38.             change.  The 'volatile' key word instructs the compiler to
  39.             not assume the variable remains constant.  Thanks to Chris
  40.             Fanning for pointing this out to me.
  41.  
  42.          2) The ANSI cursor position sequence did not recognize the
  43.             window relative ('v_wrel') mode of operation.  If an ANSI
  44.             cursor sequence was received, it was always treated relative
  45.             to 0,0.  It now treats the current window's top left corner
  46.             as 0,0 if 'v_wrel' is non-zero.  Thanks to David Speer for
  47.             this information.
  48.  
  49.          3) When a line was exactly the width of the screen, any
  50.             following CR/LFs were ignored until a non CR/LF character
  51.             was received.  This is now fixed.
  52.  
  53.          4) The definition of SHFT_TAB in KEYS.H has been wrong for the
  54.             last several versions.  Thanks to Cleo Yarber for pointing
  55.             this out to me several times.
  56.  
  57.  
  58.  
  59.  
  60.                              MCOMM 5.40 UPDATE NOTES
  61.  
  62.          The 5.40 version of MCOMM corrects two problems:
  63.  
  64.          1) Some UARTs miss transmit interrupts when they are ran in
  65.             full duplex mode.  Code was added to detect missed
  66.             interrupts and correct the situation.  This condition would
  67.             cause previous versions of MCOMM to quit transmitting until
  68.             the transmit buffer was flushed or the port closed and
  69.             reopened.  This bug only showed up when operating in full
  70.             duplex mode and only with some UARTs.  Version 5.40 has been
  71.             tested by running several megabytes of data through 8250,
  72.             16450, and 16550 UARTs in full duplex mode and never fails
  73.             to detect a missed interrupt and correct for it.
  74.  
  75.          2) The loop that loads bytes into the transmit FIFOs (or the
  76.             transmit hold register if the UART isn't a 16550) updates
  77.             the transmit buffer output pointer in a register.  The loop
  78.             is in the transmit interrupt handler and in previous
  79.             versions of MCOMM5 the transmit interrupt handler code was
  80.             called by the routine that started up the transmitter.  If a
  81.             transmit interrupt occurred while the transmit start up code
  82.             was within this loop, the buffer output pointer could be
  83.             corrupted.  The result was scrambled output.  This only
  84.             happened if the transmitter was sent a character, allowed to
  85.             empty, and then immediately sent another character.  If only
  86.             one character was sent at a time slowly, as in typing, or if
  87.             the buffer was loaded up rapidly as in a program loop,
  88.             everything was OK.  If characters were sent in a program loop
  89.             that put a "small" delay between characters (character
  90.             pacing), it often failed.  This was corrected by changing
  91.             the transmit initiate routine so that it toggles the
  92.             transmit interrupt enable bit in the UART's interrupt enable
  93.             register to initiate transmit interrupts rather than calling
  94.             the interrupt handler directly.
  95.  
  96.  
  97.          ADDITIONS:
  98.  
  99.          An option was added to the async_open function to force FIFO
  100.          mode off.  Previously you could OR the ComBase parameter with
  101.          0x8000 and the code skipped over the check for a 16550 UART.
  102.          If it was there and on, it stayed on.  If it was there and off,
  103.          it stayed off.  You can now OR the ComBase parameter with
  104.          0x4000 to force the FIFOs to be off.  If you don't OR anything
  105.          with the ComBase parameter the FIFOs will be enabled if a 16550
  106.          is present.
  107.  
  108.          To deal with problems with the Western Digital 16550, the ASYNC
  109.          port structure is now one element longer.  The new element is
  110.          called 'IERVal'.  Also options were added to allow you to open
  111.          a port without enabling MSR interrupts, LSR interrupts, or
  112.          both.  See the notes on the WD16550 in ASYNC.DOC for more
  113.          information.
  114.  
  115.  
  116.  
  117.  
  118.          Conversion LIBs and a batch file were added to support Zortech
  119.          C / C++.  C++ header files and a C++ demo program for either
  120.          Turbo C++ or Zortech C++ were added.
  121.  
  122.          Two new macros are now defined in COMM.H.  They are:
  123.  
  124.          async_txcnt(ASYNC *port) -- returns number of bytes left
  125.                                      in the transmit buffer still to
  126.                                      be transmitted.  Use async_txempty
  127.                                      if you are waiting for 0 byte
  128.                                      condition -- it's more efficient.
  129.  
  130.          async_rxfree(ASYNC *port) - returns bytes of free space left
  131.                                      in the receive buffer.
  132.  
  133.  
  134.          VIDEO FUNCTIONS:
  135.  
  136.          One minor bug was fixed.  The rd_scrnd function returned an
  137.          incorrect pointer if the function was called with a request to
  138.          read 0 bytes.  The result string was correct but the return
  139.          value was wrong.  It now returns the correct pointer.
  140.  
  141.          A new global variable was added to control whether a displayed
  142.          backspace character was destructive or non-destructive.
  143.          Previously it was always destructive and that still is the
  144.          default.  The variable is v_bksp.  Setting v_bksp to 0 will
  145.          cause the backspace character to be non-destructive.
  146.  
  147.  
  148.  
  149.  
  150.                             MCOMM 5.20 UPGRADE NOTES
  151.  
  152.             Major changes in this version of MCOMM are support for the
  153.          16550 UART's FIFO mode of operation, changes in the header
  154.          files, new time-out functions, and updated documentation.
  155.  
  156.  
  157.          16550 UART SUPPORT:
  158.  
  159.             The async code now supports the 16550 UART's FIFO mode of
  160.             operation.  Key features are:
  161.  
  162.             1) The async_open function automatically detects a 16550 and
  163.                enables its FIFOs (can be optionally defeated).
  164.  
  165.             2) Functions are provided to set the receiver FIFO trigger
  166.                level and to control the maximum number of bytes to load
  167.                into the transmit FIFO at one time.
  168.  
  169.             3) The interrupt handler has been re-written to make most
  170.                efficient use of the FIFO registers (they process
  171.                multiple bytes per interrupt).
  172.  
  173.             ASYNC.DOC contains full descriptions of the new functions
  174.             and changes made to the old functions.  It also has some
  175.             information on how to set the receiver FIFO trigger level
  176.             and the 'maximum number of bytes to transmit to the FIFOs at
  177.             one time' level to achieve the best results.
  178.  
  179.  
  180.          HEADER FILE CHANGES:
  181.  
  182.             Due to stricter type checking of newer compilers, several
  183.             functions that formerly were declared as taking 'char' argu-
  184.             ments are now declared as taking 'int' arguments.  This
  185.             prevents getting an excessive number of warnings when pass-
  186.             ing constants to these functions.
  187.  
  188.             The 'cdecl' keyword was added to the function prototypes to
  189.             prevent problems when compiling with Microsoft's 'fastcall'
  190.             option enabled.  This keyword, as well as the 'near' and
  191.             'far' keywords, may not be compatible with your compiler.
  192.             See MUSTREAD.DOC for more information.
  193.  
  194.             All the video functions are now prototyped in ANSIDRV.H.
  195.             Before half of them were in ANSIDRV.H and the rest were in
  196.             EXTRA.H.
  197.  
  198.  
  199.          TIME OUT FUNCTIONS:
  200.  
  201.             The time-out functions have been changed to a new version
  202.             that takes a pointer to a 'long' rather than a pointer to a
  203.             TIMEOUT structure.  The new functions are faster and work
  204.             with longer timeouts than the old versions.  Converting to
  205.             the new style consists mainly of changing all occurrences of
  206.             'struct TIMEOUT' in your code to 'long'.
  207.  
  208.